/**
 * 矩形接口定义
 * 包含左上角坐标(x, y)和宽高(width, height)
 */
interface Rectangle {
    x: number
    y: number
    width: number
    height: number
}

/**
 * 判断矩形a是否包含矩形b（完全相等也算包含）
 * @param a - 矩形a
 * @param b - 矩形b
 * @returns 若a包含b则返回true，否则返回false
 */
export const rectangleContains = (a: Rectangle, b: Rectangle): boolean => {
    // 计算矩形a的右下角坐标
    const aRight = a.x + a.width
    const aBottom = a.y + a.height

    // 计算矩形b的右下角坐标
    const bRight = b.x + b.width
    const bBottom = b.y + b.height

    // 判断条件：b的所有边界都在a的边界内部或重合
    return b.x >= a.x && b.y >= a.y && bRight <= aRight && bBottom <= aBottom
}
